home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-04-18 | 59.6 KB | 2,201 lines | [TEXT/MMCC] |
- /*
- Copyright © 1993,1994 by Fabrizio Oddone
- ••• ••• ••• ••• ••• ••• ••• ••• ••• •••
- This source code is distributed as freeware: you can copy, exchange, modify this
- code as you wish. You may include this code in any kind of application: freeware,
- shareware, or commercial, provided that full credits are given.
- You may not sell or distribute this code for profit.
- */
-
- #define SystemSevenOrLater 1
-
- #include "SysTypes.r"
- #include "Types.r"
- #include "StdAlert.r"
-
- #define NumTextLines 3
-
- resource 'ALRT' (128, purgeable, preload) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 128,
- { /* array: 4 elements */
- /* [1] */
- Cancel, visible, silent,
- /* [2] */
- Cancel, visible, silent,
- /* [3] */
- Cancel, visible, silent,
- /* [4] */
- Cancel, visible, silent
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (128, purgeable, preload) {
- { /* array DITLarray: 3 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "Reset"
- },
- /* [2] */
- {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
- Button {
- enabled,
- "Cancel"
- },
- /* [3] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Do you really want to reset the simulator main memory to its"
- " initial state? This is NOT undoable."
- }
- }
- };
-
- #define NumTextLines 4
- #define LongestButtonName 64 // Overwrite
-
- resource 'ALRT' (129, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 129,
- { /* array: 4 elements */
- /* [1] */
- Cancel, visible, sound1,
- /* [2] */
- Cancel, visible, sound1,
- /* [3] */
- Cancel, visible, sound1,
- /* [4] */
- Cancel, visible, sound1
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (129, purgeable) {
- { /* array DITLarray: 3 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "Overwrite"
- },
- /* [2] */
- {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
- Button {
- enabled,
- "Cancel"
- },
- /* [3] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "A safe save is not possible, because the available free spac"
- "e is less than the size of this document. Shall I overwrite "
- "the original document?"
- }
- }
- };
-
- #define LongestButtonName LongestBtnName // restore
-
- #define NumTextLines 2
-
- resource 'ALRT' (130, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 130,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound2,
- /* [2] */
- OK, visible, sound2,
- /* [3] */
- OK, visible, sound2,
- /* [4] */
- OK, visible, sound2
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (130, purgeable) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "A general error ^0 has occurred; I hope you have a list of e"
- "rror codes."
- }
- }
- };
-
- #define NumTextLines 3
-
- resource 'ALRT' (131, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 131,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound1,
- /* [2] */
- OK, visible, sound1,
- /* [3] */
- OK, visible, sound1,
- /* [4] */
- OK, visible, sound1
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (131, purgeable) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "Quit"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Sorry, this program needs features currently available only "
- "under System 7.0 or later."
- }
- }
- };
-
- #define NumTextLines 4
-
- resource 'ALRT' (132, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 132,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound2,
- /* [2] */
- OK, visible, sound2,
- /* [3] */
- OK, visible, sound2,
- /* [4] */
- OK, visible, sound2
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (132, purgeable) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Sorry, it is not possible to save onto this disk without ove"
- "rwriting the original file (no more free space available). T"
- "o be safe, save onto another disk."
- }
- }
- };
-
- #define NumTextLines 3
-
- resource 'ALRT' (133, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 133,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound2,
- /* [2] */
- OK, visible, sound2,
- /* [3] */
- OK, visible, sound2,
- /* [4] */
- OK, visible, sound2
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (133, purgeable) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "An error ^0 has occurred while processing an Apple Event; I "
- "hope you have a list of error codes."
- }
- }
- };
-
- #define NumTextLines 2
-
- resource 'ALRT' (135, purgeable, preload) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 135,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound3,
- /* [2] */
- OK, visible, sound3,
- /* [3] */
- OK, visible, sound3,
- /* [4] */
- OK, visible, sound3
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (135, purgeable, preload) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "A stack underflow error occurred (in the simulated computer,"
- " fortunately)."
- }
- }
- };
-
- #define NumTextLines 3
-
- resource 'ALRT' (136, purgeable, preload) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 136,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound3,
- /* [2] */
- OK, visible, sound3,
- /* [3] */
- OK, visible, sound3,
- /* [4] */
- OK, visible, sound3
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (136, purgeable, preload) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Timeout error. The simulated processor is abnormally busy, p"
- "ossibly because of an infinite loop in the microprogram."
- }
- }
- };
-
- #define NumTextLines 1
-
- resource 'ALRT' (137, purgeable, preload) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 137,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound2,
- /* [2] */
- OK, visible, sound2,
- /* [3] */
- OK, visible, sound2,
- /* [4] */
- OK, visible, sound2
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (137, purgeable, preload) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "The simulated program has quitted."
- }
- }
- };
-
- #define NumTextLines 4
-
- resource 'ALRT' (138, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 138,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound1,
- /* [2] */
- OK, visible, sound1,
- /* [3] */
- OK, visible, sound1,
- /* [4] */
- OK, visible, sound1
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (138, purgeable) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Sorry, this volume does not support “safe save”. Please save"
- " onto another volume, or save the document with another name"
- "."
- }
- }
- };
-
- #define NumTextLines 4
-
- resource 'ALRT' (139, purgeable, preload) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 139,
- { /* array: 4 elements */
- /* [1] */
- Cancel, visible, silent,
- /* [2] */
- Cancel, visible, silent,
- /* [3] */
- Cancel, visible, silent,
- /* [4] */
- Cancel, visible, silent
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (139, purgeable, preload) {
- { /* array DITLarray: 3 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "Reset"
- },
- /* [2] */
- {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
- Button {
- enabled,
- "Cancel"
- },
- /* [3] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Do you really want to reset the Program Counter, the Stack "
- "Pointer and the Micro Program Counter to their initial values? "
- "This is NOT undoable."
- }
- }
- };
-
- #define NumTextLines 2
-
- resource 'ALRT' (140, purgeable, preload) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 140,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound3,
- /* [2] */
- OK, visible, sound3,
- /* [3] */
- OK, visible, sound3,
- /* [4] */
- OK, visible, sound3
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (140, purgeable, preload) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "A stack overflow error occurred (in the simulated computer, "
- "fortunately)."
- }
- }
- };
-
- #define NumTextLines 3
-
- resource 'ALRT' (141, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 141,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound3,
- /* [2] */
- OK, visible, sound3,
- /* [3] */
- OK, visible, sound3,
- /* [4] */
- OK, visible, sound3
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (141, purgeable) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Sorry, memory is full. You will find some recovered document"
- "s in the Trash after restarting your Mac."
- }
- }
- };
-
- #define NumTextLines 3
-
- resource 'ALRT' (142, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 142,
- { /* array: 4 elements */
- /* [1] */
- Cancel, visible, silent,
- /* [2] */
- Cancel, visible, silent,
- /* [3] */
- Cancel, visible, silent,
- /* [4] */
- Cancel, visible, silent
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (142, purgeable) {
- { /* array DITLarray: 3 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "Revert"
- },
- /* [2] */
- {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
- Button {
- enabled,
- "Cancel"
- },
- /* [3] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Do you really want to revert to the last saved version of th"
- "is document? This is NOT undoable."
- }
- }
- };
-
- #define NumTextLines 3
-
- resource 'ALRT' (143, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 143,
- { /* array: 4 elements */
- /* [1] */
- Cancel, visible, silent,
- /* [2] */
- Cancel, visible, silent,
- /* [3] */
- Cancel, visible, silent,
- /* [4] */
- Cancel, visible, silent
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (143, purgeable) {
- { /* array DITLarray: 3 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "Quit"
- },
- /* [2] */
- {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
- Button {
- enabled,
- "Cancel"
- },
- /* [3] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "A computation is running on the simulated processor. Do you "
- "really want to quit now?"
- }
- }
- };
-
- #define NumTextLines 3
-
- resource 'ALRT' (200, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 200,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, silent,
- /* [2] */
- OK, visible, silent,
- /* [3] */
- OK, visible, silent,
- /* [4] */
- OK, visible, silent
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (200, purgeable) {
- { /* array DITLarray: 4 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "Save"
- },
- /* [2] */
- {ButtonTop, CancelButtonLeft, ButtonBottom, CancelButtonRight},
- Button {
- enabled,
- "Cancel"
- },
- /* [3] */
- {ButtonTop, DontSaveButtonLeft, ButtonBottom, DontSaveButtonRight},
- Button {
- enabled,
- "Don’t Save"
- },
- /* [4] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Save changes to the microprogram document “^0”?"
- }
- }
- };
-
- #define NumTextLines 1
-
- resource 'ALRT' (512, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 512,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound3,
- /* [2] */
- OK, visible, sound3,
- /* [3] */
- OK, visible, sound3,
- /* [4] */
- OK, visible, sound3
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (512, purgeable) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Invalid opcode at line ^0."
- }
- }
- };
-
- #define NumTextLines 2
-
- resource 'ALRT' (513, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 513,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound3,
- /* [2] */
- OK, visible, sound3,
- /* [3] */
- OK, visible, sound3,
- /* [4] */
- OK, visible, sound3
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (513, purgeable) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Opcode not present in the opcode table at line ^0."
- }
- }
- };
-
- #define NumTextLines 4
-
- resource 'ALRT' (514, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 514,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound3,
- /* [2] */
- OK, visible, sound3,
- /* [3] */
- OK, visible, sound3,
- /* [4] */
- OK, visible, sound3
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (514, purgeable) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "You would assemble this program outside of the simulator mem"
- "ory. Set the value in the Assembler Preferences dialog to a "
- "more reasonable one."
- }
- }
- };
-
- #define NumTextLines 2
-
- resource 'ALRT' (515, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 515,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound3,
- /* [2] */
- OK, visible, sound3,
- /* [3] */
- OK, visible, sound3,
- /* [4] */
- OK, visible, sound3
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (515, purgeable) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Symbol not defined at line ^0."
- }
- }
- };
-
- #define NumTextLines 2
-
- resource 'ALRT' (516, purgeable) {
- {AlertTop, AlertLeft, AlertBottom, AlertRight},
- 516,
- { /* array: 4 elements */
- /* [1] */
- OK, visible, sound3,
- /* [2] */
- OK, visible, sound3,
- /* [3] */
- OK, visible, sound3,
- /* [4] */
- OK, visible, sound3
- },
- alertPositionMainScreen
- };
-
- resource 'DITL' (516, purgeable) {
- { /* array DITLarray: 2 elements */
- /* [1] */
- {ButtonTop, ActionButtonLeft, ButtonBottom, ActionButtonRight},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {TextTop, TextLeft, TextBottom, TextRight},
- StaticText {
- disabled,
- "Operand not valid at line ^0. One or two letters are allowed between ' "
- "'."
- }
- }
- };
-
- resource 'DLOG' (256, purgeable, preload) {
- {25, 10, 325, 500},
- plainDBox,
- invisible,
- noGoAway,
- 0x0,
- 256,
- "",
- centerMainScreen
- };
-
- resource 'DITL' (256, purgeable, preload) {
- { /* array DITLarray: 6 elements */
- /* [1] */
- {11, 5, 241, 224},
- Picture {
- disabled,
- 256
- },
- /* [2] */
- {16, 230, 47, 373},
- StaticText {
- disabled,
- "Version ^0 by Fabrizio Oddone."
- },
- /* [3] */
- {55, 230, 136, 488},
- StaticText {
- disabled,
- "Freeware! If you really like this application "
- "or find it useful, send a postcard. "
- "US dollars are welcome as always. "
- "My full address is:"
- },
- /* [4] */
- {145, 230, 241, 488},
- StaticText {
- disabled,
- "Fabrizio Oddone\nC.so Monte Cucco 59/F\n10141 Torino - Italy\n\n"
- "e-mail: simula3@di.unito.it"
- },
- /* [5] */
- {248, 8, 295, 483},
- StaticText {
- disabled,
- "Many thanks to Alessandro Levi Montalcini and Alberto Ricci "
- "for testing and for giving lots of suggestions. (Alessandro "
- "even borrowed me Inside Mac VI when it could not be found in"
- " local bookstores)."
- },
- /* [6] */
- {15, 440, 47, 472},
- Icon {
- disabled,
- 129
- }
- }
- };
-
- resource 'DLOG' (261, purgeable, preload) {
- {100, 118, 220, 390},
- dBoxProc,
- invisible,
- noGoAway,
- 0x0,
- 261,
- "",
- centerParentWindowScreen
- };
-
- resource 'DITL' (261, purgeable, preload) {
- { /* array DITLarray: 6 elements */
- /* [1] */
- {90, 203, 110, 262},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {90, 131, 110, 190},
- Button {
- enabled,
- "Cancel"
- },
- /* [3] */
- {60, 71, 76, 202},
- EditText {
- enabled,
- ""
- },
- /* [4] */
- {29, 53, 49, 220},
- Control {
- enabled,
- 128
- },
- /* [5] */
- {5, 7, 21, 265},
- StaticText {
- disabled,
- "Value ^0^1:"
- },
- /* [6] */
- {0, 0, 0, 0},
- HelpItem {
- enabled,
- HMScanhdlg {
- 256
- }
- }
- }
- };
-
- resource 'DLOG' (134, purgeable) {
- {100, 100, 230, 430},
- dBoxProc,
- invisible,
- noGoAway,
- 0x0,
- 134,
- "",
- centerMainScreen
- };
-
- resource 'DITL' (134, purgeable) {
- { /* array DITLarray: 7 elements */
- /* [1] */
- {100, 254, 120, 313},
- Button {
- enabled,
- "OK"
- },
- /* [2] */
- {100, 182, 120, 241},
- Button {
- enabled,
- "Cancel"
- },
- /* [3] */
- {58, 263, 74, 310},
- EditText {
- enabled,
- ""
- },
- /* [4] */
- {15, 83, 31, 247},
- StaticText {
- disabled,
- "Assembler Preferences:"
- },
- /* [5] */
- {58, 18, 75, 239},
- StaticText {
- disabled,
- "Assemble to memory word (hex):"
- },
- /* [6] */
- {10, 20, 42, 52},
- Icon {
- disabled,
- 128
- },
- /* [7] */
- {0, 0, 0, 0},
- HelpItem {
- enabled,
- HMScanhdlg {
- 134
- }
- }
- }
- };
-
-
- data 'WIND' (256, "Microprogram", purgeable, preload) {
- $"0027 0010 013B 01FE 0004 0000 0101 0000 0100 0855 6E74 6974" /* .'...;.............Untit */
- $"6C65 64" /* led */
- };
-
- data 'WIND' (261, "Disasm", purgeable, preload) {
- $"002A 0008 014E 00BE 0000 0000 0100 0000 0000 0C44 6973 6173" /* .*...N.æ...........Disas */
- $"7365 6D62 6C65 72" /* sembler */
- };
-
- data 'WIND' (257, "Animation", purgeable, preload) {
- $"004B 0000 0156 017F 0004 0000 0100 0000 0000 0941 6E69 6D61" /* .K...V............ΔAnima */
- $"7469 6F6E" /* tion */
- };
-
- data 'WIND' (258, "I/O", purgeable, preload) {
- $"0117 0000 0156 017D 0008 0000 0100 0000 0000 0C49 6E70 7574" /* .....V.}...........Input */
- $"2F4F 7574 7075 74" /* /Output */
- };
-
- data 'WIND' (259, "Registers", purgeable, preload) {
- $"0024 0181 00D8 01FE 0004 0000 0100 0000 0000 0952 6567 6973" /* .$.Å.ÿ............ΔRegis */
- $"7465 7273" /* ters */
- };
-
- data 'WIND' (260, "Dump", purgeable, preload) {
- $"0032 000A 00A4 003C 0000 0000 0100 0000 0000 0444 756D 70" /* .2...§.<...........Dump */
- };
-
- resource 'WIND' (128, purgeable, preload) {
- {40, 40, 56, 69},
- altDBoxProc,
- invisible,
- noGoAway,
- 0x0,
- "",
- staggerParentWindow
- };
-
- resource 'vers' (1, purgeable) {
- 0x1,
- 0x0,
- beta,
- 5,
- verUS,
- "1.0b5",
- "1.0b5 ©1993-1994 Fabrizio Oddone"
- };
-
- resource 'STR#' (256, purgeable, preload) {
- { /* array StringArray: 10 elements */
- /* [1] */
- "A Latch",
- /* [2] */
- "B Latch",
- /* [3] */
- "Memory Address Register",
- /* [4] */
- "Memory Buffer Register",
- /* [5] */
- "A Multiplexer",
- /* [6] */
- "Shifter",
- /* [7] */
- "Incrementer",
- /* [8] */
- "M Multiplexer",
- /* [9] */
- "Micro Program Counter",
- /* [10] */
- "Arithmetic Logical Unit"
- }
- };
-
- resource 'STR#' (257, purgeable, preload) {
- { /* array StringArray: 13 elements */
- /* [1] */
- "PC",
- /* [2] */
- "AC",
- /* [3] */
- "SP",
- /* [4] */
- "BP",
- /* [5] */
- "IR",
- /* [6] */
- "A",
- /* [7] */
- "B",
- /* [8] */
- "C",
- /* [9] */
- "D",
- /* [10] */
- "E",
- /* [11] */
- "X12",
- /* [12] */
- "X11",
- /* [13] */
- "Lo8"
- }
- };
-
- resource 'STR#' (258, purgeable, preload) {
- { /* array StringArray: 13 elements */
- /* [1] */
- "Program Counter",
- /* [2] */
- "Accumulator",
- /* [3] */
- "Stack Pointer",
- /* [4] */
- "Base Pointer",
- /* [5] */
- "Instruction Register",
- /* [6] */
- "Register A",
- /* [7] */
- "Register B",
- /* [8] */
- "Register C",
- /* [9] */
- "Register D",
- /* [10] */
- "Register E",
- /* [11] */
- "Register X12",
- /* [12] */
- "Register X11",
- /* [13] */
- "Register Lo8"
- }
- };
-
- resource 'STR#' (259, purgeable, preload) {
- { /* array StringArray: 2 elements */
- /* [1] */
- "ALU input from:",
- /* [2] */
- "to"
- }
- };
-
- resource 'STR#' (128, purgeable) {
- { /* array StringArray: 2 elements */
- /* [1] */
- "closing",
- /* [2] */
- "quitting"
- }
- };
-
- resource 'STR#' (130) {
- { /* array StringArray: 2 elements */
- /* [1] */
- "in the ",
- /* [2] */
- "at memory word $"
- }
- };
-
- resource 'STR ' (128, purgeable) {
- "0123456789-"
- };
-
- resource 'STR ' (129, purgeable) {
- "0123456789ABCDEF"
- };
-
- resource 'STR ' (130, purgeable) {
- "01234567"
- };
-
- resource 'STR ' (131, purgeable) {
- "01"
- };
-
- resource 'STR ' (132, purgeable) {
- " "
- };
-
- resource 'STR ' (133, purgeable) {
- "Save memory file as:"
- };
-
- resource 'STR ' (134, purgeable) {
- "Main memory"
- };
-
- resource 'STR ' (-16396, purgeable) {
- "µArchitecture Simulator"
- };
-
- resource 'STR ' (-16397, purgeable) {
- "This document describes user preferences for the application"
- " µArchitecture Simulator. You cannot open or print this docu"
- "ment. To be effective, this document must not be renamed and"
- " must be stored in the Preferences folder in the System Fold"
- "er."
- };
-
- resource 'STR ' (135, purgeable) {
- "Save control store file as:"
- };
-
- resource 'STR ' (136, purgeable) {
- "Control Store"
- };
-
- resource 'STR ' (137, purgeable) {
- "untitled"
- };
-
- resource 'STR ' (139, purgeable) {
- "Save processor state file as:"
- };
-
- resource 'STR ' (140, purgeable) {
- "Processor state"
- };
-
- resource 'CNTL' (134, purgeable, preload) {
- {90, 256, 105, 436},
- 0,
- visible,
- 1,
- 0,
- checkBoxProc,
- 0,
- "Memory Buffer Register"
- };
-
- resource 'CNTL' (133, purgeable, preload) {
- {72, 256, 87, 444},
- 0,
- visible,
- 1,
- 0,
- checkBoxProc,
- 0,
- "Memory Address Register"
- };
-
- resource 'CNTL' (141, purgeable, preload) {
- {227, 256, 242, 460},
- 0,
- visible,
- 1,
- 0,
- checkBoxProc,
- 0,
- "Activate hardware decoding"
- };
-
- resource 'CNTL' (139, purgeable, preload) {
- {207, 374, 222, 433},
- 0,
- visible,
- 1,
- 0,
- radioButProc,
- 0,
- "A Bus"
- };
-
- resource 'CNTL' (140, purgeable, preload) {
- {207, 438, 222, 485},
- 0,
- visible,
- 1,
- 0,
- radioButProc,
- 0,
- "MBR"
- };
-
- resource 'CNTL' (136, purgeable, preload) {
- {133, 288, 153, 486},
- 0,
- visible,
- 53,
- 130,
- 1009,
- 0,
- "Shifter"
- };
-
- resource 'CNTL' (137, purgeable, preload) {
- {157, 289, 177, 426},
- 0,
- visible,
- 52,
- 131,
- 1009,
- 0,
- "Branch"
- };
-
- resource 'CNTL' (138, purgeable, preload) {
- {181, 311, 201, 486},
- 0,
- visible,
- 30,
- 132,
- 1009,
- 0,
- "ALU"
- };
-
- resource 'CNTL' (130, purgeable, preload) {
- {4, 256, 24, 398},
- 0,
- visible,
- 42,
- 133,
- 1009,
- 0,
- "A bus"
- };
-
- resource 'CNTL' (131, purgeable, preload) {
- {26, 256, 46, 398},
- 0,
- visible,
- 42,
- 133,
- 1009,
- 0,
- "B bus"
- };
-
- resource 'CNTL' (132, purgeable, preload) {
- {48, 256, 68, 398},
- 0,
- visible,
- 42,
- 134,
- 1009,
- 0,
- "C bus"
- };
-
- resource 'CNTL' (135, purgeable, preload) {
- {109, 256, 129, 486},
- 0,
- visible,
- 85,
- 135,
- 1009,
- 0,
- "Bus request"
- };
-
- resource 'CNTL' (128, purgeable, preload) {
- {29, 53, 49, 220},
- 0,
- visible,
- 42,
- 128,
- 1008,
- 0,
- "Base:"
- };
-
- resource 'CNTL' (129, purgeable, preload) {
- {2, 1, 22, 110},
- 0,
- visible,
- 42,
- 129,
- 1008,
- 0,
- "Base:"
- };
-
- resource 'CNTL' (142, purgeable, preload) {
- {-1, 385, 236, 401},
- 0,
- visible,
- 0,
- 0,
- scrollBarProc,
- 0,
- ""
- };
-
- resource 'CNTL' (143, purgeable, preload) {
- {235, -1, 251, 386},
- 0,
- visible,
- 0,
- 0,
- scrollBarProc,
- 0,
- ""
- };
-
- resource 'CNTL' (144, purgeable, preload) {
- {0, 385, 236, 401},
- 0,
- visible,
- 8192,
- 0,
- scrollBarProc,
- 0,
- ""
- };
-
- resource 'CNTL' (145, purgeable, preload) {
- {0, 385, 236, 401},
- 0,
- visible,
- 8192,
- 0,
- scrollBarProc,
- 0,
- ""
- };
-
- resource 'STR#' (1000, purgeable) { /* Hier menus */
- {
- /* [1] Open…, Normal */
- "Opens a previously saved memory document, reading it into "
- "the main memory of the simulated computer.",
- /* [2] Save As…, Normal */
- "Saves the contents of the main memory of the simulated comp"
- "uter.",
- /* [3] Open…, Normal */
- "Opens a previously saved state document, loading it into "
- "the registers and internal parts of the simulated microprocessor.",
- /* [4] Save As…, Normal */
- "Saves the contents of the internal state of the simulated microprocessor.",
- /* [5] Disasm from, Missing */
- "Scrolls the Disassembler window in order to bring in view "
- "the memory location pointed to by this register.",
- /* [6] Disasm from, Missing */
- "Scrolls the Dump window in order to bring in view "
- "the memory location pointed to by this register.",
- }
- };
-
- resource 'STR#' (1001, purgeable) { /* popup menus */
- {
- /* [1] Decimal, Normal */
- "Displays the number you are editing in decimal form.",
- /* [2] Decimal, Checked */
- "Displays the number you are editing in decimal form. Checke"
- "d because it is the active choice.",
- /* [3] Hexadecimal, Normal */
- "Displays the number you are editing in hexadecimal form.",
- /* [4] Hexadecimal, Checked */
- "Displays the number you are editing in hexadecimal form. Ch"
- "ecked because it is the active choice.",
- /* [5] Octal, Normal */
- "Displays the number you are editing in octal form.",
- /* [6] Octal, Checked */
- "Displays the number you are editing in octal form. Checked "
- "because it is the active choice.",
- /* [7] Binary, Normal */
- "Displays the number you are editing in binary form.",
- /* [8] Binary, Checked */
- "Displays the number you are editing in binary form. Checked"
- " because it is the active choice.",
- /* [9] as text, Normal */
- "Displays the number you are editing in textual form (ASCII decoding).",
- /* [10] as text, Checked */
- "Displays the number you are editing in textual form (ASCII decoding). Checked"
- " because it is the active choice.",
- /* [11] Dec, Normal */
- "Displays the registers in decimal form.",
- /* [12] Dec, Checked */
- "Displays the registers in decimal form. Checked because it "
- "is the active choice.",
- /* [13] Hex, Normal */
- "Displays the registers in hexadecimal form.",
- /* [14] Hex, Checked */
- "Displays the registers in hexadecimal form. Checked because"
- " it is the active choice.",
- /* [15] Oct, Normal */
- "Displays the registers in octal form.",
- /* [16] Oct, Checked */
- "Displays the registers in octal form. Checked because it is"
- " the active choice.",
- /* [17] Bin, Normal */
- "Displays the registers in binary form.",
- /* [18] Bin, Checked */
- "Displays the registers in binary form. Checked because it i"
- "s the active choice.",
- /* [19] as text, Normal */
- "Displays the registers in textual form (ASCII decoding).",
- /* [20] as text, Checked */
- "Displays the registers in textual form (ASCII decoding). Checked"
- " because it is the active choice.",
- /* [21] Inactive, Normal */
- "The shifter will be inactive while executing the curren"
- "tly selected microinstruction.",
- /* [22] Inactive, Checked */
- "The shifter will be inactive while executing the curren"
- "tly selected microinstruction. Checked because it is the act"
- "ive choice.",
- /* [23] Left, Normal */
- "The shifter will shift left while executing the current"
- "ly selected microinstruction.",
- /* [24] Left, Checked */
- "The shifter will shift left while executing the current"
- "ly selected microinstruction. Checked because it is the acti"
- "ve choice.",
- /* [25] Right Logical, Normal */
- "The shifter will shift right without extending the sign bit"
- " while executing the currently selected microinstruction"
- ".",
- /* [26] Right Logical, Checked */
- "The shifter will shift right without extending the sign bit"
- " while executing the currently selected microinstruction"
- ". Checked because it is the active choice.",
- /* [27] Right Arithmetic, Normal */
- "The shifter will shift right extending the sign bit while "
- "executing the currently selected microinstruction.",
- /* [28] Right Arithmetic, Checked */
- "The shifter will shift right extending the sign bit while "
- "executing the currently selected microinstruction. Checke"
- "d because it is the active choice.",
- /* [29] never, Normal */
- "The microprogram will never branch from the currently selec"
- "ted microinstruction.",
- /* [30] never, Checked */
- "The microprogram will never branch from the currently selec"
- "ted microinstruction. Checked because it is the active choic"
- "e.",
- /* [31] if n, Normal */
- "The microprogram will branch from the currently selected mi"
- "croinstruction if the number in the Arithmetic Logical Unit "
- "is negative.",
- /* [32] if n, Checked */
- "The microprogram will branch from the currently selected mi"
- "croinstruction if the number in the Arithmetic Logical Unit "
- "is negative. Checked because it is the active choice.",
- /* [33] if z, Normal */
- "The microprogram will branch from the currently selected mi"
- "croinstruction if the number in the Arithmetic Logical Unit "
- "is zero.",
- /* [34] if z, Checked */
- "The microprogram will branch from the currently selected mi"
- "croinstruction if the number in the Arithmetic Logical Unit "
- "is zero. Checked because it is the active choice.",
- /* [35] always, Normal */
- "The microprogram will always branch from the currently sele"
- "cted microinstruction.",
- /* [36] always, Checked */
- "The microprogram will always branch from the currently sele"
- "cted microinstruction. Checked because it is the active choi"
- "ce.",
- /* [37] Inactive, Normal */
- "The Arithmetic Logical Unit will stay inactive while execu"
- "ting the currently selected microinstruction.",
- /* [38] Inactive, Checked */
- "The Arithmetic Logical Unit will stay inactive while execu"
- "ting the currently selected microinstruction. Checked bec"
- "ause it is the active choice.",
- /* [39] +, Normal */
- "The Arithmetic Logical Unit will add the input values "
- "while executing the currently selected microinstruction.",
- /* [40] +, Checked */
- "The Arithmetic Logical Unit will add the input values "
- "while executing the currently selected microinstruction. "
- "Checked because it is the active choice.",
- /* [41] &, Normal */
- "The Arithmetic Logical Unit will do a logical AND of the input values while ex"
- "ecuting the currently selected microinstruction.",
- /* [42] &, Checked */
- "The Arithmetic Logical Unit will do a logical AND of the input values while ex"
- "ecuting the currently selected microinstruction. Checked "
- "because it is the active choice.",
- /* [43] ~, Normal */
- "The Arithmetic Logical Unit will do a one’s complement on t"
- "he left input value while executing the currently select"
- "ed microinstruction.",
- /* [44] ~, Checked */
- "The Arithmetic Logical Unit will do a one’s complement on t"
- "he left input value while executing the currently select"
- "ed microinstruction. Checked because it is the active choice"
- ".",
- }
- };
-
- resource 'STR#' (1002, purgeable) { /* popup menus, part 2 */
- {
- /* [1] PC, Normal */
- "The Program Counter value will be sent on this bus.",
- /* [2] PC, Checked */
- "The Program Counter value will be sent on this bus. Checked"
- " because it is the active choice.",
- /* [3] AC, Normal */
- "The Accumulator value will be sent on this bus.",
- /* [4] AC, Checked */
- "The Accumulator value will be sent on this bus. Checked bec"
- "ause it is the active choice.",
- /* [5] SP, Normal */
- "The Stack Pointer value will be sent on this bus.",
- /* [6] SP, Checked */
- "The Stack Pointer value will be sent on this bus. Checked b"
- "ecause it is the active choice.",
- /* [7] BP, Normal */
- "The Base Pointer value will be sent on this bus.",
- /* [8] BP, Checked */
- "The Base Pointer value will be sent on this bus. Checked be"
- "cause it is the active choice.",
- /* [9] IR, Normal */
- "The Instruction Register value will be sent on this bus.",
- /* [10] IR, Checked */
- "The Instruction Register value will be sent on this bus. Ch"
- "ecked because it is the active choice.",
- /* [11] A, Normal */
- "The Register A value will be sent on this bus.",
- /* [12] A, Checked */
- "The Register A value will be sent on this bus. Checked beca"
- "use it is the active choice.",
- /* [13] B, Normal */
- "The Register B value will be sent on this bus.",
- /* [14] B, Checked */
- "The Register B value will be sent on this bus. Checked beca"
- "use it is the active choice.",
- /* [15] C, Normal */
- "The Register C value will be sent on this bus.",
- /* [16] C, Checked */
- "The Register C value will be sent on this bus. Checked beca"
- "use it is the active choice.",
- /* [17] D, Normal */
- "The Register D value will be sent on this bus.",
- /* [18] D, Checked */
- "The Register D value will be sent on this bus. Checked beca"
- "use it is the active choice.",
- /* [19] E, Normal */
- "The Register E value will be sent on this bus.",
- /* [20] E, Checked */
- "The Register E value will be sent on this bus. Checked beca"
- "use it is the active choice.",
- /* [21] X12, Normal */
- "The Register X12 value will be sent on this bus.",
- /* [22] X12, Checked */
- "The Register X12 value will be sent on this bus. Checked be"
- "cause it is the active choice.",
- /* [23] X11, Normal */
- "The Register X11 value will be sent on this bus.",
- /* [24] X11, Checked */
- "The Register X11 value will be sent on this bus. Checked be"
- "cause it is the active choice.",
- /* [25] Lo8, Normal */
- "The Register Lo8 value will be sent on this bus.",
- /* [26] Lo8, Checked */
- "The Register Lo8 value will be sent on this bus. Checked be"
- "cause it is the active choice.",
- /* [27] Zero, Normal */
- "The Register Zero value (0) will be sent on this bus.",
- /* [28] Zero, Checked */
- "The Register Zero value (0) will be sent on this bus. Checked b"
- "ecause it is the active choice.",
- /* [29] One, Normal */
- "The Register One value (1) will be sent on this bus.",
- /* [30] One, Checked */
- "The Register One value (1) will be sent on this bus. Checked be"
- "cause it is the active choice.",
- /* [31] MinusOne, Normal */
- "The Register MinusOne value (-1) will be sent on this bus.",
- /* [32] MinusOne, Checked */
- "The Register MinusOne value (-1) will be sent on this bus. Check"
- "ed because it is the active choice.",
- }
- };
-
- resource 'STR#' (1003, purgeable) { /* Balloon Help String 4 */
- {
- /* [1] Disabled, Normal */
- "The value on this bus will not be saved in any register.",
- /* [2] Disabled, Checked */
- "The value on this bus will not be saved in any register. Ch"
- "ecked because it is the active choice.",
- /* [3] PC, Normal */
- "The Program Counter will be loaded from this bus.",
- /* [4] PC, Checked */
- "The Program Counter will be loaded from this bus. Checked b"
- "ecause it is the active choice.",
- /* [5] AC, Normal */
- "The Accumulator will be loaded from this bus.",
- /* [6] AC, Checked */
- "The Accumulator will be loaded from this bus. Checked becau"
- "se it is the active choice.",
- /* [7] SP, Normal */
- "The Stack Pointer will be loaded from this bus.",
- /* [8] SP, Checked */
- "The Stack Pointer will be loaded from this bus. Checked bec"
- "ause it is the active choice.",
- /* [9] BP, Normal */
- "The Base Register will be loaded from this bus.",
- /* [10] BP, Checked */
- "The Base Register will be loaded from this bus. Checked bec"
- "ause it is the active choice.",
- /* [11] IR, Normal */
- "The Instruction Register will be loaded from this bus.",
- /* [12] IR, Checked */
- "The Instruction Register will be loaded from this bus. Chec"
- "ked because it is the active choice.",
- /* [13] A, Normal */
- "The Register A will be loaded from this bus.",
- /* [14] A, Checked */
- "The Register A will be loaded from this bus. Checked becaus"
- "e it is the active choice.",
- /* [15] B, Normal */
- "The Register B will be loaded from this bus.",
- /* [16] B, Checked */
- "The Register B will be loaded from this bus. Checked becaus"
- "e it is the active choice.",
- /* [17] C, Normal */
- "The Register C will be loaded from this bus.",
- /* [18] C, Checked */
- "The Register C will be loaded from this bus. Checked becaus"
- "e it is the active choice.",
- /* [19] D, Normal */
- "The Register D will be loaded from this bus.",
- /* [20] D, Checked */
- "The Register D will be loaded from this bus. Checked becaus"
- "e it is the active choice.",
- /* [21] E, Normal */
- "The Register E will be loaded from this bus.",
- /* [22] E, Checked */
- "The Register E will be loaded from this bus. Checked becaus"
- "e it is the active choice.",
- /* [23] No, Normal */
- "The processor will not interact with the main memory while"
- " executing the currently selected microinstruction.",
- /* [24] No, Checked */
- "The processor will not interact with the main memory while"
- " executing the currently selected microinstruction. Check"
- "ed because it is the active choice.",
- /* [25] Read, Normal */
- "The processor will ask to read from the main memory while "
- "executing the currently selected microinstruction. "
- "You need to request a read for two microinstructions "
- "to actually get data from memory.",
- /* [26] Read, Checked */
- "The processor will ask to read from the main memory while "
- "executing the currently selected microinstruction. "
- "You need to request a read for two microinstructions "
- "to actually get data from memory. "
- "Checked because it is the active choice.",
- /* [27] Write, Normal */
- "The processor will ask to write to the main memory while e"
- "xecuting the currently selected microinstruction. "
- "You need to request a write for two microinstructions "
- "to actually write data into memory.",
- /* [28] Write, Checked */
- "The processor will ask to write to the main memory while e"
- "xecuting the currently selected microinstruction. "
- "You need to request a write for two microinstructions "
- "to actually write data into memory. "
- "Checked because it is the active choice.",
- }
- };
-
- resource 'STR#' (1004, purgeable) { /* Menu bar */
- {
- /* [1] Menu Title, Checked */
- "This menu is not available because it cannot be used with the dialog box on your screen.",
- /* [2] Menu Title, Other */
- "This command is not available because you have to respond "
- "to the dialog box.",
- /* [3] About µSimulator…, Normal */
- "Tells you something about this application and its author.",
- /* [4] Menu Title, Normal */
- "File menu\$0D\$0DUse this menu to perform operations with doc"
- "uments, and to set your preferences for this application.",
- /* [5] New, Normal */
- "Starts afresh with a new microprogram.",
- /* [6] Open…, Normal */
- "Opens a previously saved microprogram document.",
- /* [7] Close Control Store, Normal */
- "Closes the microprogram document you are working at.",
- /* [8] Close Control Store, Grayed */
- "Closes the microprogram document you are working at. Not av"
- "ailable because no document is open.",
- /* [9] Save Control Store, Normal */
- "Saves the microprogram document.",
- /* [10] Save Control Store, Grayed */
- "Saves the microprogram document. Not available because no d"
- "ocument is open, or the working document has been already sa"
- "ved.",
- /* [11] Save Control Store As…, Normal */
- "Saves the microprogram into a new document.",
- /* [12] Save Control Store As…, Grayed */
- "Saves the microprogram into a new document. Not available b"
- "ecause no document is open.",
- /* [13] Revert, Normal */
- "Reverts to the last saved version of this document.",
- /* [14] Revert to Saved, Grayed */
- "Reverts to the last saved version of this document. N"
- "ot available because you are not working on a previously saved "
- "document, or no document is open.",
- /* [15] Page Setup…, Grayed */
- "Displays a dialog box which allows you to set paper size, o"
- "rientation, and other printing options. Not available becaus"
- "e printing is not implemented.",
- /* [16] Print…, Grayed */
- "Not available because printing is not implemented.",
- /* [17] Preferences…, Normal */
- "Brings up a dialog that allows you to set your preferences "
- "for this application.",
- /* [18] Quit, Normal */
- "Quits this application.",
- }
- };
-
- resource 'STR#' (1005, purgeable) { /* Menu bar, contd. */
- {
- /* [1] Menu Title, Normal */
- "Edit menu\$0D\$0DUse this menu to work with text and the micr"
- "oprogram.",
- /* [2] Undo, Normal */
- "Undoes the last operation.",
- /* [3] Undo, Grayed */
- "Undoes the last operation. Not available because not implemented.",
- /* [4] Cut, Normal */
- "Cuts the selection. The material you cut is removed and pla"
- "ced temporarily into a storage area called the Clipboard.",
- /* [5] Cut, Grayed */
- "Cuts the selection. The material you cut is removed and pla"
- "ced temporarily into a storage area called the Clipboard. No"
- "t available because nothing is selected.",
- /* [6] Copy, Normal */
- "Copies the selection. The material you copy is placed tempo"
- "rarily into a storage area called the Clipboard.",
- /* [7] Copy, Grayed */
- "Copies the selection. The material you copy is placed tempo"
- "rarily into a storage area called the Clipboard. Not availab"
- "le because nothing is selected.",
- /* [8] Paste, Normal */
- "Places the contents of the Clipboard at the location of the"
- " insertion point (or in place of the current selection).",
- /* [9] Paste, Grayed */
- "Places the contents of the Clipboard at the location of the"
- " insertion point (or in place of the current selection). Not"
- " available because there is nothing on the Clipboard, or bec"
- "ause the insertion point is not in a location where pasting "
- "is possible.",
- /* [10] Clear, Normal */
- "Removes the selection without storing it on the Clipboard.",
- /* [11] Clear, Grayed */
- "Removes the selection without storing it on the Clipboard. "
- "Not available because nothing is selected.",
- /* [12] Select All, Normal */
- "Selects all the text you are editing.",
- /* [13] Select All, Grayed */
- "Selects all the text you are editing. Not available because"
- " no text is being edited.",
- /* [14] Insert Line, Normal */
- "Inserts an empty microinstruction before the selected one.",
- /* [15] Insert Line, Grayed */
- "Inserts an empty microinstruction before the selected one. "
- "Not available because the microinstruction list is not activ"
- "e, or because you can achieve the same effect by choosing Cl"
- "ear from this menu.",
- /* [16] Delete Line, Normal */
- "Deletes the selected microinstruction and moves up the foll"
- "owing to fill the empty space.",
- /* [17] Delete Line, Grayed */
- "Deletes the selected microinstruction and moves up the foll"
- "owing to fill the empty space. Not available because the mic"
- "roinstruction list is not active, or because you can achieve"
- " the same effect by choosing Clear from this menu.",
- }
- };
-
- resource 'STR#' (1006, purgeable) { /* menu bar, contd. */
- {
- /* [1] Menu Title, Normal */
- "Windows menu\$0D\$0DUse this menu to show or select windows.\$0D"
- "(nothing to do with Microsloth Windows)\$0D",
- /* [2] Animation, Normal */
- "Shows up the Animation window.",
- /* [3] Animation, Checked */
- "Brings to front the Animation window. Checked because the w"
- "indow is visible.",
- /* [4] Registers, Normal */
- "Shows up the Registers window.",
- /* [5] Registers, Checked */
- "Brings to front the Registers window. Checked because the w"
- "indow is visible.",
- /* [6] Input/Output, Normal */
- "Shows up the Input/Output window.",
- /* [7] Input/Output, Checked */
- "Brings to front the Input/Output window. Checked because th"
- "e window is visible.",
- /* [8] Microprogram, Normal */
- "Shows up the Microprogram document window.",
- /* [9] Microprogram, Grayed */
- "Shows up the Microprogram document window. Not available be"
- "cause no document is open.",
- /* [10] Microprogram, Checked */
- "Brings to front the Microprogram document window. Checked b"
- "ecause the window is visible.",
- /* [11] Disassembler, Normal */
- "Shows up the Disassembler window.",
- /* [12] Disassembler, Checked */
- "Brings to front the Disassembler window. Checked because the window"
- " is visible.",
- /* [13] Dump, Normal */
- "Shows up the Dump window.",
- /* [14] Dump, Checked */
- "Brings to front the Dump window. Checked because th"
- "e window is visible.",
- }
- };
-
- resource 'STR#' (1007, purgeable) { /* menu bar, contd. */
- {
- /* [1] Menu Title, Normal */
- "Control menu\$0D\$0DUse this menu to control the processor ex"
- "ecution or to reset the memory and registers to their standard states.",
- /* [2] Go, Normal */
- "Starts the execution.",
- /* [3] Go, Grayed */
- "Starts the execution. Not available because the processor i"
- "s already executing instructions, or because no microprogram "
- "document is currently open.",
- /* [4] Stop, Normal */
- "Stops the execution of instructions.",
- /* [5] Stop, Grayed */
- "Stops the execution of instructions. Not available because "
- "the processor is not executing instructions, or because no "
- "microprogram document is currently open.",
- /* [6] Step, Grayed */
- "Not available because the processor is executing instructions.",
- /* [7] Step sub, Normal */
- "Carries on the execution of one clock subcycle. Each microinstruction executes in four "
- "clock subcycles.",
- /* [8] Step micro, Normal */
- "Carries on the execution of one microinstruction. Each conventional instruction "
- "is composed by four (or more) microinstructions, two for fetching it from the main "
- "memory, one for hardware decoding, and one (or more) for the actual execution.",
- /* [9] Step asm, Normal */
- "Carries on the execution of one conventional instruction.",
- /* [10] Reset Memory, Normal */
- "Resets memory to its initial state (for the most part it wi"
- "ll be zeroed out).",
- /* [11] Reset Memory, Grayed */
- "Resets memory to its initial state (for the most part it wi"
- "ll be zeroed out). Not available because resetting memory wh"
- "ile the processor is executing instructions is somewhat dang"
- "erous.",
- /* [12] Reset Registers, Normal */
- "Resets the Program Counter and the Stack Pointer to their "
- "standard initial values. You can modify the standard values in "
- "the preferences dialog.",
- /* [13] Reset Registers, Grayed */
- "Resets the Program Counter and the Stack Pointer to their "
- "standard initial values. Not available because modifying the r"
- "egisters while the processor is executing instructions is so"
- "mewhat dangerous.",
- /* [14] Disasm, Grayed */
- "Scrolls the Disassembler window in order to bring in view a certain "
- "part of memory. Not available because the window is not visible.",
- /* [15] Dump, Grayed */
- "Scrolls the Dump window in order to bring in view a certain "
- "part of memory. Not available because the window is not visible.",
- /* [16] Select MPC, Normal */
- "Selects the microprogram instruction pointed to by the MPC.",
- /* [17] Select MPC, Grayed */
- "Selects the microprogram instruction pointed to by the MPC. "
- "Not available because no microprogram document is currently open.",
- }
- };
-
- resource 'STR#' (1008, purgeable) { /* menu bar, contd. */
- {
- /* [1] Menu Title, Normal */
- "Assembler menu\$0D\$0DUse this menu to assemble a text file t"
- "o the main memory.",
- /* [2] Assemble file…, Normal */
- "Lets you choose a text file to assemble in the main memory.",
- /* [3] Preferences…, Normal */
- "Brings up a dialog which allows you to enter a main memo"
- "ry location. The assembler will output conventional instructions from "
- "that memory location.",
- }
- };
-
- resource 'STR#' (1009, purgeable) { /* dialogs */
- {
- /* [1] OK, Normal */
- "To accept assembling from this memory location, click here.",
- /* [2] Cancel, Normal */
- "To cancel changes you have made, click here.",
- /* [3] DITL 134, Normal */
- "The assembler will output conventional instructions starting from the "
- "main memory location entered here.",
- /* [4] OK, Normal */
- "To accept changes you have made to this value, click here.",
- /* [5] Cancel, Normal */
- "To cancel changes you have made to this value, click here.",
- /* [6] DITL 256, Normal */
- "Here you can modify the value.",
- /* [7] Base:, Normal */
- "Use this pop-up menu to display the number in different forms.",
- /* [8] OK, Normal */
- "To accept changes you have made to the current preferences,"
- " click here.",
- /* [9] Cancel, Normal */
- "To cancel changes you have made to the current preferences,"
- " click here.",
- /* [10] Remember Window Positions , Normal */
- "To remember window positions between sessions, click here.",
- /* [11] Remember Window Positions , Checked */
- "To leave windows in their standard position between sessions"
- ", click here.",
- /* [12] Continuous Dump scrolling, Normal */
- "To watch the memory contents while moving the scroll box of the D"
- "ump window, click here.",
- /* [13] Continuous Dump scrolling, Checked */
- "To scroll the Dump window in the usual way, click here.",
- /* [14] detect ∞ loops, Normal */
- "To detect ∞ loops in the microprogram, click here. The processor is "
- "expected to execute periodically the first few instructions in the "
- "microprogram in order to fetch instructions from memory.",
- /* [15] detect ∞ loops, Checked */
- "To execute ∞ loops in the microprogram, click here.",
- /* [16] text, PC value */
- "Enter here the value you want to store into the "
- "Program Counter when this application starts up, and when you "
- "choose Reset Registers from the Control Menu.",
- /* [17] text, SP value */
- "Enter here the value you want to store into the "
- "Stack Pointer when this application starts up, and when you "
- "choose Reset Registers from the Control Menu. This is usually "
- "called the stack base.",
- /* [18] text, Stack size */
- "Enter here the stack size of the simulated computer. This sets up "
- "a limit for it; when the Stack Pointer goes beyond this limit "
- "a stack overflow error occurs. The limit is obviously (stack base - "
- "stack size), because the stack grows downwards in memory.",
- }
- };
-
- resource 'STR#' (1010, purgeable) { /* Animation Window Balloons */
- {
- /* [1] A Latch */
- "To modify the value stored in the A latch, click here.\nThe register addressed by the "
- "“A” field in the Micro Instruction Register feeds the A bus, which in turn feeds "
- "the A latch.",
- /* [2] B Latch */
- "To modify the value stored in the B latch, click here.\nThe register addressed by the "
- "“B” field in the Micro Instruction Register feeds the B bus, which in turn feeds "
- "the B latch.",
- /* [3] MAR */
- "To modify the value stored in the Memory Address Register, click here.\nWhen this "
- "register is active, the B latch feeds it. When the processor needs to read from or write to "
- "a main memory address, it puts here the memory address.",
- /* [4] MBR */
- "To modify the value stored in the Memory Buffer Register, click here.\nWhen this "
- "register is active, the Shifter feeds it. Here the processor keeps values read from and "
- "to be written to the main memory.",
- /* [5] AMUX */
- "To modify the value stored in the A multiplexer, click here.\nThis multiplexer controls the "
- "left input to the Arithmetic Logical Unit. It chooses between the A latch and the Memory "
- "Buffer Register.",
- /* [6] Shifter */
- "To modify the value stored in the Shifter, click here.\nThe Arithmetic Logical Unit feeds the "
- "shifter with its result. If the C bus is not disabled, its contents go to the Registers scratchpad.",
- /* [7] Incrementer */
- "To modify the value stored in the Incrementer, click here.\nThe incrementer provides the standard "
- "advancing of the Micro Program Counter.",
- /* [8] MMUX */
- "To modify the value stored in the M multiplexer, click here.\nThis multiplexer controls the input to "
- "the Micro Program Counter. A jump in the microprogram results in feeding the Micro Program Counter "
- "with the “Addr” field of the Micro Instruction Register.",
- /* [9] MPC */
- "To modify the value stored in the Micro Program Counter, click here.\nThis register points to the "
- "microinstruction currently executing.",
- /* [10] ALU */
- "To modify the value stored in the Arithmetic Logical Unit, click here.\nThis unit performs the basic "
- "calculations (add, logical “and” and one’s complement) and sets the Negative and Zero flags, "
- "according to its contents.",
- /* [11] MSL */
- "The Micro Sequencing Logic decides whether to take a jump (in the microprogram) or not. The decision "
- "is based upon the Negative and Zero flags, and the “Cond” field of the Micro Instruction Register.",
- /* [12] MIR */
- "The Micro Instruction Register contains the last microinstruction extracted from "
- "the Control Store. Its fields control many parts of the processor.",
- /* [13] Registers */
- "To show the Register window, click here.\nThe registers are a scratchpad memory; the processor can "
- "access their data very quickly. While the processor is running, the (writable) registers can be "
- "set via the C bus, which may carry the shifter output.",
- /* [14] Control Store */
- "To show the Microprogram window, click here; you cannot show the window if no document "
- "is open.\nThe Control Store contains the entire "
- "microprogram, which endlessly fetches, decodes and executes "
- "instructions from the main memory.",
- /* [15] Map */
- "This is the hardware decoding unit. When activated, this unit decodes the "
- "conventional instruction in the Instruction Register, setting the "
- "Micro Program Counter; it writes to the X12, X11, Lo8 registers simultaneously."
- }
- };
-
- resource 'STR#' (1011, purgeable) { /* Registers Window Balloons */
- {
- /* [1] Base pop-up */
- "Use this pop-up menu to display the registers’ contents in different forms.",
- /* [2] PC */
- "To modify the value stored in the Program Counter, click here.\nThis register is used to "
- "indicate the conventional instruction which must be executed. Conventional instructions are "
- "shown in the Disassembler window.",
- /* [3] AC */
- "To modify the value stored in the Accumulator, click here.\nIn the sample "
- "supplied with this application, this register is heavily used. It may not be so with other "
- "macroarchitectures.",
- /* [4] SP */
- "To modify the value stored in the Stack Pointer, click here.\nThis register normally points to a "
- "memory structure called a stack. The stack is simply a Last In, First Out queue "
- "(the last element inserted is the first removed).",
- /* [5] BP */
- "To modify the value stored in the Base Pointer, click here.\nThis register is used to make "
- "the management of local variables and actual parameters of functions easier.",
- /* [6] IR */
- "To modify the value stored in the Instruction Register, click here.\nThis register is "
- "used to hold the conventional instruction fetched from the main memory.",
- /* [7] A */
- "To modify the value stored in the A register, click here.\nThis is a scratch register, "
- "the only one used in the sample supplied with this application.",
- /* [8] B */
- "To modify the value stored in the B register, click here.\nThis is a scratch register.",
- /* [9] C */
- "To modify the value stored in the C register, click here.\nThis is a scratch register.",
- /* [10] D */
- "To modify the value stored in the D register, click here.\nThis is a scratch register.",
- /* [11] E */
- "To modify the value stored in the E register, click here.\nThis is a scratch register.",
- /* [12] X12 */
- "To modify the value stored in the X12 register, click here.\nThis register is set by the "
- "hardware decoding unit to the lower 12 bits of the Instruction Register, with sign extension.",
- /* [13] X11 */
- "To modify the value stored in the X11 register, click here.\nThis register is set by the "
- "hardware decoding unit to the lower 11 bits of the Instruction Register, with sign extension.",
- /* [14] Lo8 */
- "To modify the value stored in the Lo8 register, click here.\nThis register is set by the "
- "hardware decoding unit to the lower 8 bits of the Instruction Register."
- }
- };
-
- resource 'STR#' (1012, purgeable) { /* Microprogram Window Balloons */
- {
- /* [1] A bus */
- "Use this pop-up menu to send on the A bus (left input to the Arithmetic "
- "Logical Unit) the value stored in a register.",
- /* [2] B bus */
- "Use this pop-up menu to send on the B bus (right input to the Arithmetic "
- "Logical Unit) the value stored in a register.",
- /* [3] C bus */
- "Use this pop-up menu to overwrite a register with the shifter output.",
- /* [4] MAR */
- "To put the B latch contents into the Memory Address Register, check this button.",
- /* [5] MBR */
- "To put the shifter output into the Memory Buffer Register, check this button.",
- /* [6] Bus request */
- "Use this pop-up menu to request memory reads or writes.",
- /* [7] Shifter */
- "Use this pop-up menu to control the shifter behavior.",
- /* [8] Branch */
- "Use this pop-up menu to choose on which condition the selected microinstruction should take a jump.",
- /* [9] ALU */
- "Use this pop-up menu to control the Arithmetic Logical Unit behavior.",
- /* [10] A bus */
- "To send the value arriving from the A latch to the Arithmetic Logical Unit, click here.",
- /* [11] MBR */
- "To send the value arriving from the Memory Buffer Register to the Arithmetic Logical Unit, click here.",
- /* [12] hardware decoding */
- "To activate the hardware decoding unit (labeled MAP in the Animation window), check this button.",
- /* [13] to… */
- "Enter here the destination microinstruction line number. "
- "To enter the line number automatically, "
- "Command-click on the destination "
- "microinstruction (in the descriptions list).",
- /* [14] comment */
- "Enter here a description of the current microinstruction. The description will appear in the "
- "adjacent list.",
- /* [15] comment list */
- "This is a list of the descriptions entered for each microinstruction. "
- "To select a branch destination line, select a line "
- "containing a branch and double-click on it.",
- /* [16] conventional instruction list */
- "This is a list of the conventional instructions of this processor. "
- "To select the starting line of a conventional instruction in the descriptions list, "
- "click on it. To change the starting line, click and "
- "drag to the description list."
- }
- };
-
- resource 'STR#' (1013, purgeable) { /* Dump, Disasm, IO Window Balloons */
- {
- /* [1] Dump area */
- "This window represents the main memory contents. To modify a memory "
- "location, click on its value. To dump or disassemble starting from an address in a "
- "location, click on it holding down respectively the command or option key.",
- /* [2] Disasm area */
- "This window represents the disassembled main memory contents.",
- /* [3] IO area */
- "This window is the interface with the simulated computer."
- }
- };
-
-